/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package biblioteca;

/**
 *
 * @author Chris
 */
public class Principal {

    public static void main(String args[]) {
        Emprestimo feito = null;
        boolean atrasado;
        Exemplar exemplo[] = null;
        Usuario[] usuario = null;
        Emprestimo[] emprestimo = null;
        //Multa [] multa;
        String cpf, exemplares;
        int opcaoOperacao = 0, i = 0, j = 0, k = 0;
        String novo;
        do {
            opcaoOperacao = Integer.parseInt(Utilitario.lerTeclado(
                    "opcao 1 - emprestar\nopcao 2 - devolver"
                    + "\nopcao 3 - multa\nopcao 4 - sair"));
        } while (opcaoOperacao < 1 && opcaoOperacao > 5);
        switch (opcaoOperacao) {
            case 1:
                do {
                    Usuario pessoa = new Usuario(Utilitario.lerTeclado(
                            "Informe nome"), Utilitario.lerTeclado("Informe CPF"),
                            Utilitario.lerTeclado("Informe email"),
                            Integer.parseInt(Utilitario.lerTeclado("Informe quantidade")));
                    if (Utilitario.validarCPF(pessoa.getCpf())) {
                        usuario[i++] = pessoa;
                    }
                    novo = Utilitario.lerTeclado("Informar outro usuario ? S para Sim"
                            + "N para nao");
                } while (novo.equals("s") || novo.equalsIgnoreCase("sim"));
                novo = "";
                do {
                    Exemplar obra = new Exemplar(Utilitario.lerTeclado(
                            "Informe o nome da obra"), Integer.parseInt(
                            Utilitario.lerTeclado("Informe a quantidade "
                            + "de exemplares disponíveis")));
                    exemplo[j++] = obra;
                    novo = Utilitario.lerTeclado("Informar outro usuario ? S para Sim"
                            + "N para nao");
                } while (novo.equals("s") || novo.equalsIgnoreCase("sim"));
                //Emprestimo feito;
                cpf = Utilitario.lerTeclado("Informe o CPF ");
                exemplares = Utilitario.lerTeclado("Informe exemplar");
                for (int m = 0; m < usuario.length; m++) {
                    if (usuario[m].getCpf().equals(cpf)) {
                        for (int l = 0; l < exemplo.length; l++) {
                            //for(int a = 0 ; a < 3 ; a++){
                            if (exemplo[l].getTitulo().equals(exemplares)) {
                                if (exemplo[l].estaDisponivel(exemplares)) {
                                    exemplo[l].emprestar();
                                    emprestimo[k++] = new Emprestimo(usuario[m]);
                                }
                            }
                        }
                    }
                }
            case 2:
                feito = Emprestimo.consultarTicket(Utilitario.lerTeclado("Informe CPF "),
                        emprestimo);
                atrasado = feito.verificarAtraso(emprestimo);
                Exemplar[] emprestado = feito.getItens();
                for (int n = 0; n < emprestimo.length; n++) {
                    for (int h = 0; h < exemplo.length; h++) {
                        for (int a = 0; a < emprestado.length; a++) {
                            if (exemplo[h].getTitulo().equals(emprestado[a])) {
                                emprestimo[n].removerItem(exemplo[h]);
                                emprestimo[n] = emprestimo[emprestimo.length - 1];
                                emprestimo[emprestimo.length - 1] = null;
                                if (atrasado) {
                                    System.out.println("Favor, calcular multa!");
                                }
                                //emprestimo[n].verificarAtraso
                                //exemplo[n].devolver();
                            }
                        }
                    }
                }
            case 3:
                feito = Emprestimo.consultarTicket(Utilitario.lerTeclado("Informe CPF "),
                        emprestimo);
                Multa multa = new Multa(feito.getUsuario(), false);
                multa.calcular(feito);
                multa.pagar();
            case 4:
                System.exit(0);
        }
    }
}
